Skip to content

fix(release): provide sqlite3.h for sqlite-vec cgo builds on Linux - #1027

Merged
wesm merged 1 commit into
mainfrom
fix/release-linux-sqlite-header
Jul 8, 2026
Merged

fix(release): provide sqlite3.h for sqlite-vec cgo builds on Linux#1027
wesm merged 1 commit into
mainfrom
fix/release-linux-sqlite-header

Conversation

@wesm

@wesm wesm commented Jul 8, 2026

Copy link
Copy Markdown
Member

The v0.37.0 Release and Docker workflows failed on both Linux build paths: the semantic search merge (#999) pulled in github.com/asg017/sqlite-vec-go-bindings/cgo (via go.kenn.io/kit/vector/sqlitevec), whose C sources #include "sqlite3.h". GitHub's hosted ubuntu/macos/windows images provide SQLite headers, but the manylinux_2_28 release containers and the golang:bookworm Docker build stage do not, so go build died with fatal error: sqlite3.h: No such file or directory. That blocked the CLI release assets and the PyPI publish.

Instead of installing distro headers, both Linux build paths now compile sqlite-vec against the header of the exact SQLite amalgamation bundled and statically linked by mattn/go-sqlite3 (sqlite3-binding.h, currently 3.53.2), exposed via CGO_CFLAGS. This keeps the compile-time header and the linked library at the same version everywhere. It also avoids a silent behavior difference: manylinux_2_28 (AlmaLinux 8) ships SQLite 3.26 headers, and sqlite-vec compiles out its sqlite3_vtab_in support when built against headers older than 3.38, which would have made PyPI wheels behave differently from every other build.

Reviewers should look at the new header-staging step in .github/workflows/release.yml (build-linux) and the equivalent RUN/ENV pair in Dockerfile. macOS and Windows builds are unchanged; they already build against SDK/toolchain headers newer than 3.38.

@roborev-ci

roborev-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown

roborev: Combined Review (ffbe6a9)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 2m3s

@wesm
wesm merged commit 9621af8 into main Jul 8, 2026
18 checks passed
@wesm
wesm deleted the fix/release-linux-sqlite-header branch July 8, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant